<template>
    <div class="sdy-search-history">
        <div v-if="historyList.length" class="history box">
            <div class="title ">
                <span>最近搜索</span>
                <van-icon @click="delHandler" class="del" name="delete-o" />
            </div>
            <ul class="content" >
                <li v-for="item in historyList" @click="clickHandler">{{ item }}</li>
            </ul>
        </div>
        <div class="hot box">
            <div class="title">
                <span>热门搜索</span>
                <span @click="isShow = !isShow">{{ isShow ? '隐藏' : '显示' }}</span>
            </div>
            <ul v-if="isShow" class="content" >
                <li v-for="item in hotList" :key="item.wordid" @click="clickHandler">{{ item.keyword }}</li>
            </ul>
            <div v-else class="hid">
                已经隐藏搜索发现
            </div>
        </div>
    </div>
</template>
<script setup lang="ts">
import { onMounted, ref } from 'vue'
import { hotSearchApi } from '@/api/goods'
import type { MyHotItem } from '@/config/interface';
import { useRouter, type Router } from 'vue-router'
const $router: Router = useRouter()

// 需要一个数组保存历史记录
const historyList = ref(JSON.parse(window.localStorage.getItem('history') as string) || [])
// 准备一个变量 控制显示和隐藏
const isShow = ref<boolean>(true)
// 按钮点击时候跳转到分类页面
const clickHandler = (e: Event) => {
    const text = (e.target as HTMLElement).innerText
    console.log(text);

    // 需要跳转路由，携带 text 去到商品列表页
    $router.push({ path: '/goodlist', query: { search: text } })
}
// 点击删除按钮 删除历史记录
const delHandler = () => {
    window.localStorage.removeItem('history')
    historyList.value = []
}

// 热门搜索相关数据
const hotList = ref<MyHotItem[]>([])

// 挂载完毕请求数据
onMounted(async () => {
    const res = await hotSearchApi()
    hotList.value = res.data
})

</script>

<style scoped lang="scss">
.sdy-search-history {
    height: 100%;
    box-sizing: border-box;
    padding: 15px;

    >.box {
        margin-bottom: 30px;

        >.title {
            display: flex;
            justify-content: space-between;

            .del {
                font-size: 20px;
            }
        }


        >ul {
            display: flex;
            flex-wrap: wrap;
            margin-top: 5px;

            >li {
                background-color: #c4c4c4;
                color: #fff;
                padding: 2px 3px;
                margin: 0 2px;
            }
        }

        >.hid {
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
        }
    }
}
</style>